]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar-server: Specify the timezone for the view query
authorSebastian Keller <sebastian-keller@gmx.de>
Tue, 6 Jun 2017 20:32:55 +0000 (22:32 +0200)
committerSebastian Keller <skeller@src.gnome.org>
Fri, 16 Jun 2017 15:13:50 +0000 (17:13 +0200)
Otherwise UTC is used which results in a different interpretation of
floating time events. This then could lead to a mismatch with events
generated e_cal_client_generate_instances_sync() which always uses the
default timezone. Such a mismatch would then cause constant invalidation
and reloading.

https://bugzilla.gnome.org/show_bug.cgi?id=781950

src/calendar-server/gnome-shell-calendar-server.c

index b607b7331820ec99dc48daf9f86900de2b25eb6d..e979f7ff3c73187ce9f98a0835073e1a5b76d487 100644 (file)
@@ -573,6 +573,7 @@ app_load_events (App *app)
   gchar *since_iso8601;
   gchar *until_iso8601;
   gchar *query;
+  const char *tz_location;
 
   /* out with the old */
   g_hash_table_remove_all (app->appointments);
@@ -594,15 +595,17 @@ app_load_events (App *app)
 
   since_iso8601 = isodate_from_time_t (app->since);
   until_iso8601 = isodate_from_time_t (app->until);
+  tz_location = icaltimezone_get_location (app->zone);
 
   print_debug ("Loading events since %s until %s",
                since_iso8601,
                until_iso8601);
 
   query = g_strdup_printf ("occur-in-time-range? (make-time \"%s\") "
-                           "(make-time \"%s\")",
+                           "(make-time \"%s\") \"%s\"",
                            since_iso8601,
-                           until_iso8601);
+                           until_iso8601,
+                           tz_location);
 
   clients = calendar_sources_get_appointment_clients (app->sources);
   for (l = clients; l != NULL; l = l->next)